/*  ----------------------------------------------------------------------------
 *  Arello Mobile
 *  Fast 3d Engine
 *  ----------------------------------------------------------------------------
 * Except where otherwise noted, this work is licensed under
 * http://creativecommons.org/licenses/by/3.0
 */
#pragma once

#include "Node.h"
#include "Factory.h"
#include <lib3d/material/Shaders.h>
#include <CompilerFeatures.h>

namespace liba {
namespace lib3d {
namespace node {

class Model : public Node
{
public:
	Model( const Atom & name, Node * parent );
	virtual Model * Clone() LIBA_OVERRIDE;

	// Nodes
	static const Atom shaders_name;
protected:
	virtual bool on_node( xml::Provider * prov, const std::string & name ) LIBA_OVERRIDE;
	const material::Shaders & get_shaders()const
	{
		return shaders;
	}
	virtual animate::Node * FindAnimateNode(const Atom & name, bool recursion) LIBA_OVERRIDE;
private:
	material::Shaders shaders;
};

} // namespace node
} // namespace lib3d
} // namespace liba
using namespace liba;

